import chatManager from './chatManager.js'

/**
 * 登录管理器
 * 处理用户登录和登出相关的功能
 */
class LoginManager {
	
	/**
	 * 用户登录成功后的处理
	 */
	async onLoginSuccess(userInfo, token) {
		try {
			console.log('用户登录成功，启动相关服务...')
			
			// 存储用户信息和token
			uni.setStorageSync('userInfo', userInfo)
			uni.setStorageSync('token', token)
			
			// 启动聊天功能
			await chatManager.startChat()
			
			// 触发登录成功事件
			uni.$emit('user-login-success', { userInfo, token })
			
			console.log('登录后服务启动完成')
			
		} catch (error) {
			console.error('登录后服务启动失败:', error)
			// 即使聊天功能启动失败，也不影响正常登录
		}
	}
	
	/**
	 * 用户登出的处理
	 */
	async onLogout() {
		try {
			console.log('用户登出，停止相关服务...')
			
			// 停止聊天功能
			chatManager.stopChat()
			
			// 清除存储的用户信息
			uni.removeStorageSync('userInfo')
			uni.removeStorageSync('token')
			
			// 触发登出事件
			uni.$emit('user-logout')
			
			console.log('登出处理完成')
			
		} catch (error) {
			console.error('登出处理失败:', error)
		}
	}
	
	/**
	 * 检查登录状态
	 */
	checkLoginStatus() {
		const token = uni.getStorageSync('token')
		const userInfo = uni.getStorageSync('userInfo')
		
		return {
			isLoggedIn: !!(token && userInfo),
			token,
			userInfo
		}
	}
	
	/**
	 * 获取当前用户信息
	 */
	getCurrentUser() {
		return uni.getStorageSync('userInfo')
	}
	
	/**
	 * 获取当前token
	 */
	getCurrentToken() {
		return uni.getStorageSync('token')
	}
}

// 创建全局实例
const loginManager = new LoginManager()

export default loginManager 